[INFO] cloning repository https://github.com/taennan/wgpu-test
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/taennan/wgpu-test" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftaennan%2Fwgpu-test", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftaennan%2Fwgpu-test'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c15da11ea62ce5ff81b33aa302c3264e0b2cea7b
[INFO] checking taennan/wgpu-test against 40527f3e444fde1deb361751bdef9b9e11d1b971+rustflags=--cfg crater_hack --force-warn invalid-c-variadic-arguments for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftaennan%2Fwgpu-test" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/taennan/wgpu-test
[INFO] finished tweaking git repo https://github.com/taennan/wgpu-test
[INFO] tweaked toml for git repo https://github.com/taennan/wgpu-test written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/taennan/wgpu-test on toolchain 40527f3e444fde1deb361751bdef9b9e11d1b971
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+40527f3e444fde1deb361751bdef9b9e11d1b971" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/taennan/wgpu-test already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+40527f3e444fde1deb361751bdef9b9e11d1b971" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 46af65618aaf82fd4670042cd22e0128d8f5fff4b24abb2ccfa82478f9cfcaf1
[INFO] running `Command { std: "docker" "start" "46af65618aaf82fd4670042cd22e0128d8f5fff4b24abb2ccfa82478f9cfcaf1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "46af65618aaf82fd4670042cd22e0128d8f5fff4b24abb2ccfa82478f9cfcaf1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "46af65618aaf82fd4670042cd22e0128d8f5fff4b24abb2ccfa82478f9cfcaf1" "/opt/rustwide/cargo-home/bin/cargo" "+40527f3e444fde1deb361751bdef9b9e11d1b971" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "46af65618aaf82fd4670042cd22e0128d8f5fff4b24abb2ccfa82478f9cfcaf1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid --cfg crater_hack --force-warn invalid-c-variadic-arguments" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "46af65618aaf82fd4670042cd22e0128d8f5fff4b24abb2ccfa82478f9cfcaf1" "/opt/rustwide/cargo-home/bin/cargo" "+40527f3e444fde1deb361751bdef9b9e11d1b971" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]     Checking smallvec v1.15.2
[INFO] [stderr]    Compiling syn v3.0.0
[INFO] [stderr]     Checking dlib v0.5.3
[INFO] [stderr]    Compiling wayland-sys v0.31.11
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling zerocopy v0.8.54
[INFO] [stderr]     Checking linux-raw-sys v0.12.1
[INFO] [stderr]     Checking arrayvec v0.7.8
[INFO] [stderr]    Compiling cc v1.3.0
[INFO] [stderr]    Compiling quick-xml v0.39.4
[INFO] [stderr]    Compiling wayland-client v0.31.14
[INFO] [stderr]     Checking hashbrown v0.17.1
[INFO] [stderr]     Checking simd-adler32 v0.3.10
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling naga v30.0.0
[INFO] [stderr]     Checking num-bigint v0.4.8
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking bit-vec v0.9.1
[INFO] [stderr]     Checking indexmap v2.14.0
[INFO] [stderr]     Checking bit-set v0.10.0
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]    Compiling wayland-scanner v0.31.10
[INFO] [stderr]     Checking as-slice v0.2.1
[INFO] [stderr]     Checking codespan-reporting v0.13.1
[INFO] [stderr]     Checking spirv v0.4.0+sdk-1.4.341.0
[INFO] [stderr]    Compiling wayland-backend v0.3.15
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]    Compiling av-scenechange v0.14.1
[INFO] [stderr]    Compiling built v0.8.1
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]    Compiling rav1e v0.8.1
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking aligned v0.4.3
[INFO] [stderr]    Compiling pulp v0.22.3
[INFO] [stderr]    Compiling wgpu-hal v30.0.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.19
[INFO] [stderr]     Checking nom v8.0.0
[INFO] [stderr]     Checking no_std_io2 v0.9.4
[INFO] [stderr]    Compiling pastey v0.1.1
[INFO] [stderr]     Checking y4m v0.8.0
[INFO] [stderr]     Checking quick-error v2.0.1
[INFO] [stderr]     Checking presser v0.3.1
[INFO] [stderr]     Checking bitstream-io v4.10.0
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking khronos-egl v6.0.0
[INFO] [stderr]     Checking maybe-rayon v0.1.1
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]     Checking ordered-float v5.3.0
[INFO] [stderr]     Checking raw-cpuid v11.6.0
[INFO] [stderr]     Checking thiserror v2.0.19
[INFO] [stderr]     Checking naga-types v30.0.0
[INFO] [stderr]     Checking gpu-allocator v0.28.0
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]     Checking futures-core v0.3.33
[INFO] [stderr]     Checking glow v0.17.0
[INFO] [stderr]     Checking imgref v1.12.2
[INFO] [stderr]    Compiling noop_proc_macro v0.3.0
[INFO] [stderr]     Checking reborrow v0.5.5
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]     Checking futures-sink v0.3.33
[INFO] [stderr]     Checking pulp-wasm-simd-flag v0.1.1
[INFO] [stderr]     Checking weezl v0.1.12
[INFO] [stderr]     Checking new_debug_unreachable v1.0.6
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]    Compiling bytemuck_derive v1.11.0
[INFO] [stderr]    Compiling zerocopy-derive v0.8.54
[INFO] [stderr]    Compiling profiling-procmacros v1.0.18
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]     Checking profiling v1.0.18
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]     Checking equator v0.4.2
[INFO] [stderr]     Checking bytemuck v1.25.1
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]     Checking aligned-vec v0.6.4
[INFO] [stderr]     Checking wgpu-types v30.0.0
[INFO] [stderr]     Checking v_frame v0.3.9
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking av1-grain v0.2.5
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking owned_ttf_parser v0.25.1
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]    Compiling futures-macro v0.3.33
[INFO] [stderr]     Checking futures-channel v0.3.33
[INFO] [stderr]     Checking regex-automata v0.4.16
[INFO] [stderr]     Checking loop9 v0.1.5
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking wayland-protocols v0.32.13
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]     Checking wayland-cursor v0.31.14
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking avif-serialize v0.8.9
[INFO] [stderr]    Compiling wgpu-core v30.0.0
[INFO] [stderr]     Checking memmap2 v0.9.11
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]     Checking bit_field v0.10.3
[INFO] [stderr]     Checking pxfm v0.1.30
[INFO] [stderr]     Checking fax v0.2.7
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.10
[INFO] [stderr]    Compiling inflections v1.1.1
[INFO] [stderr]     Checking lebe v0.5.3
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]     Checking rgb v0.8.53
[INFO] [stderr]     Checking gif v0.14.2
[INFO] [stderr]     Checking regex v1.13.1
[INFO] [stderr]     Checking image-webp v0.2.4
[INFO] [stderr]    Compiling gltf-derive v1.4.1
[INFO] [stderr]     Checking ab_glyph v0.2.32
[INFO] [stderr]     Checking futures-util v0.3.33
[INFO] [stderr]     Checking serde v1.0.229
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]     Checking moxcms v0.8.1
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]    Compiling wgpu v30.0.0
[INFO] [stderr]    Compiling winit v0.30.13
[INFO] [stderr]     Checking ravif v0.13.0
[INFO] [stderr]     Checking tiff v0.11.3
[INFO] [stderr]     Checking exr v1.74.2
[INFO] [stderr]     Checking jiff-core v0.1.0
[INFO] [stderr]     Checking x11rb-protocol v0.13.2
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.12
[INFO] [stderr]     Checking winnow v1.0.4
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]     Checking anstream v1.0.0
[INFO] [stderr]     Checking toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]     Checking futures-executor v0.3.33
[INFO] [stderr]     Checking smithay-client-toolkit v0.19.2
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking jiff v0.2.33
[INFO] [stderr]     Checking wayland-protocols-plasma v0.3.12
[INFO] [stderr]     Checking gltf-json v1.4.1
[INFO] [stderr]     Checking sctk-adwaita v0.10.1
[INFO] [stderr]     Checking env_filter v2.0.0
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]     Checking image v0.25.10
[INFO] [stderr]     Checking toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]     Checking serde_spanned v1.1.1
[INFO] [stderr]     Checking euclid v0.22.14
[INFO] [stderr]     Checking urlencoding v2.1.3
[INFO] [stderr]     Checking dpi v0.1.2
[INFO] [stderr]     Checking toml_writer v1.1.2+spec-1.1.0
[INFO] [stderr]     Checking winnow v0.7.15
[INFO] [stderr]     Checking guillotiere v0.7.0
[INFO] [stderr]     Checking futures v0.3.33
[INFO] [stderr]     Checking tobj v4.0.4
[INFO] [stderr]     Checking env_logger v0.11.11
[INFO] [stderr]     Checking glam v0.30.10
[INFO] [stderr]     Checking dotenv v0.15.0
[INFO] [stderr]     Checking toml v0.9.12+spec-1.1.0
[INFO] [stderr]     Checking gltf v1.4.1
[INFO] [stderr]     Checking wgpu-naga-bridge v30.0.0
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking wgpu-core-deps-windows-linux-android v30.0.0
[INFO] [stderr]     Checking wgpu-test v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `root_state::*`
[INFO] [stdout]   --> src/app/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use root_state::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mat4` and `Vec4`
[INFO] [stdout]  --> src/game/camera.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use glam::{Mat4, Quat, UVec2, Vec3, Vec4};
[INFO] [stdout]   |            ^^^^                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `heightmap_editor::*`
[INFO] [stdout]  --> src/game/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use heightmap_editor::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec4`
[INFO] [stdout]  --> src/graphics/sprite/buffer_data.rs:6:31
[INFO] [stdout]   |
[INFO] [stdout] 6 | use glam::{UVec2, Vec2, Vec3, Vec4};
[INFO] [stdout]   |                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `root_state::*`
[INFO] [stdout]   --> src/app/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use root_state::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mat4` and `Vec4`
[INFO] [stdout]  --> src/game/camera.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use glam::{Mat4, Quat, UVec2, Vec3, Vec4};
[INFO] [stdout]   |            ^^^^                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `heightmap_editor::*`
[INFO] [stdout]  --> src/game/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use heightmap_editor::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec4`
[INFO] [stdout]  --> src/graphics/sprite/buffer_data.rs:6:31
[INFO] [stdout]   |
[INFO] [stdout] 6 | use glam::{UVec2, Vec2, Vec3, Vec4};
[INFO] [stdout]   |                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: overflow evaluating the requirement `{closure@src/graphics/buffer/mut_buffer.rs:152:56: 152:76}: WasmNotSend`
[INFO] [stdout]    --> src/graphics/buffer/mut_buffer.rs:152:14
[INFO] [stdout]     |
[INFO] [stdout] 152 |             .map_async(map_mode, 0..self.inner.size(), move |buffer_result| {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: which requires `{closure@src/graphics/buffer/mut_buffer.rs:152:56: 152:76}: std::marker::Send`
[INFO] [stdout]     = note: which requires `(F, wgpu::Buffer, E, Arc<std::sync::atomic::Atomic<bool>>): std::marker::Send`
[INFO] [stdout]     = note: which requires `wgpu::Buffer: std::marker::Send`
[INFO] [stdout]     = note: which requires `wgpu::dispatch::DispatchBuffer: std::marker::Send`
[INFO] [stdout]     = note: which requires `Arc<wgpu::backend::wgpu_core::CoreBuffer>: std::marker::Send`
[INFO] [stdout]     = note: which requires `wgpu::backend::wgpu_core::CoreBuffer: std::marker::Send`
[INFO] [stdout]     = note: which requires `wgpu::backend::wgpu_core::ContextWgpuCore: std::marker::Send`
[INFO] [stdout]     = note: which requires `Arc<wgpu::wgpu_core::global::Global>: std::marker::Send`
[INFO] [stdout]     = note: which requires `wgpu::wgpu_core::global::Global: std::marker::Send`
[INFO] [stdout]     = note: which requires `Hub: std::marker::Send`
[INFO] [stdout]     = note: which requires `registry::Registry<Arc<lock_api::mutex::Mutex<parking_lot::raw_mutex::RawMutex, wgpu::wgpu_core::command::ComputePass>>>: std::marker::Send`
[INFO] [stdout]     = note: which requires `wgc::lock::vanilla::RwLock<storage::Storage<Arc<lock_api::mutex::Mutex<parking_lot::raw_mutex::RawMutex, wgpu::wgpu_core::command::ComputePass>>>>: std::marker::Send`
[INFO] [stdout]     = note: which requires `lock_api::rwlock::RwLock<parking_lot::raw_rwlock::RawRwLock, storage::Storage<Arc<lock_api::mutex::Mutex<parking_lot::raw_mutex::RawMutex, wgpu::wgpu_core::command::ComputePass>>>>: std::marker::Send`
[INFO] [stdout]     = note: which requires `storage::Storage<Arc<lock_api::mutex::Mutex<parking_lot::raw_mutex::RawMutex, wgpu::wgpu_core::command::ComputePass>>>: std::marker::Send`
[INFO] [stdout]     = note: which requires `Vec<storage::Element<Arc<lock_api::mutex::Mutex<parking_lot::raw_mutex::RawMutex, wgpu::wgpu_core::command::ComputePass>>>>: std::marker::Send`
[INFO] [stdout]     = note: and so on...
[INFO] [stdout]     = help: consider adding a manual `impl` of auto traits like `Send` for intermediate types, if auto traits are involved
[INFO] [stdout]     = help: or consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`wgpu_test`)
[INFO] [stdout]     = note: this lint is attached to the whole crate and can't be disabled on a per-function basis
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #159228 <https://github.com/rust-lang/rust/issues/159228>
[INFO] [stdout]     = note: `#[warn(recursion_depth_exceeding_limit)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/graphics/geometry/geometry.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 146 |         todo!();
[INFO] [stdout]     |         ------- any code following this expression is unreachable
[INFO] [stdout] 147 |
[INFO] [stdout] 148 |         let path = utils::paths::geometry(path);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: overflow evaluating the requirement `{closure@src/graphics/buffer/mut_buffer.rs:152:56: 152:76}: WasmNotSend`
[INFO] [stdout]    --> src/graphics/buffer/mut_buffer.rs:152:14
[INFO] [stdout]     |
[INFO] [stdout] 152 |             .map_async(map_mode, 0..self.inner.size(), move |buffer_result| {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: which requires `{closure@src/graphics/buffer/mut_buffer.rs:152:56: 152:76}: std::marker::Send`
[INFO] [stdout]     = note: which requires `(F, wgpu::Buffer, E, Arc<std::sync::atomic::Atomic<bool>>): std::marker::Send`
[INFO] [stdout]     = note: which requires `wgpu::Buffer: std::marker::Send`
[INFO] [stdout]     = note: which requires `wgpu::dispatch::DispatchBuffer: std::marker::Send`
[INFO] [stdout]     = note: which requires `Arc<wgpu::backend::wgpu_core::CoreBuffer>: std::marker::Send`
[INFO] [stdout]     = note: which requires `wgpu::backend::wgpu_core::CoreBuffer: std::marker::Send`
[INFO] [stdout]     = note: which requires `wgpu::backend::wgpu_core::ContextWgpuCore: std::marker::Send`
[INFO] [stdout]     = note: which requires `Arc<wgpu::wgpu_core::global::Global>: std::marker::Send`
[INFO] [stdout]     = note: which requires `wgpu::wgpu_core::global::Global: std::marker::Send`
[INFO] [stdout]     = note: which requires `Hub: std::marker::Send`
[INFO] [stdout]     = note: which requires `registry::Registry<Arc<lock_api::mutex::Mutex<parking_lot::raw_mutex::RawMutex, wgpu::wgpu_core::command::ComputePass>>>: std::marker::Send`
[INFO] [stdout]     = note: which requires `wgc::lock::vanilla::RwLock<storage::Storage<Arc<lock_api::mutex::Mutex<parking_lot::raw_mutex::RawMutex, wgpu::wgpu_core::command::ComputePass>>>>: std::marker::Send`
[INFO] [stdout]     = note: which requires `lock_api::rwlock::RwLock<parking_lot::raw_rwlock::RawRwLock, storage::Storage<Arc<lock_api::mutex::Mutex<parking_lot::raw_mutex::RawMutex, wgpu::wgpu_core::command::ComputePass>>>>: std::marker::Send`
[INFO] [stdout]     = note: which requires `storage::Storage<Arc<lock_api::mutex::Mutex<parking_lot::raw_mutex::RawMutex, wgpu::wgpu_core::command::ComputePass>>>: std::marker::Send`
[INFO] [stdout]     = note: which requires `Vec<storage::Element<Arc<lock_api::mutex::Mutex<parking_lot::raw_mutex::RawMutex, wgpu::wgpu_core::command::ComputePass>>>>: std::marker::Send`
[INFO] [stdout]     = note: and so on...
[INFO] [stdout]     = help: consider adding a manual `impl` of auto traits like `Send` for intermediate types, if auto traits are involved
[INFO] [stdout]     = help: or consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`wgpu_test`)
[INFO] [stdout]     = note: this lint is attached to the whole crate and can't be disabled on a per-function basis
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #159228 <https://github.com/rust-lang/rust/issues/159228>
[INFO] [stdout]     = note: `#[warn(recursion_depth_exceeding_limit)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/graphics/geometry/geometry.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 146 |         todo!();
[INFO] [stdout]     |         ------- any code following this expression is unreachable
[INFO] [stdout] 147 |
[INFO] [stdout] 148 |         let path = utils::paths::geometry(path);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_scene_name`
[INFO] [stdout]   --> src/app/root_state.rs:16:20
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn try_new(start_scene_name: &str, window: Arc<Window>) -> Result<Self> {
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_scene_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_scene_name`
[INFO] [stdout]   --> src/app/root_state.rs:16:20
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn try_new(start_scene_name: &str, window: Arc<Window>) -> Result<Self> {
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_scene_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> src/graphics/geometry/geometry.rs:139:9
[INFO] [stdout]     |
[INFO] [stdout] 139 |         path: &P,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `in_vert_generator`
[INFO] [stdout]    --> src/graphics/geometry/geometry.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |         in_vert_generator: InputVertexGenerator<D>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_in_vert_generator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out_vert_generator`
[INFO] [stdout]    --> src/graphics/geometry/geometry.rs:141:9
[INFO] [stdout]     |
[INFO] [stdout] 141 |         out_vert_generator: OutputVertexGenerator<D, V>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_out_vert_generator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> src/graphics/geometry/geometry.rs:139:9
[INFO] [stdout]     |
[INFO] [stdout] 139 |         path: &P,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `in_vert_generator`
[INFO] [stdout]    --> src/graphics/geometry/geometry.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |         in_vert_generator: InputVertexGenerator<D>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_in_vert_generator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out_vert_generator`
[INFO] [stdout]    --> src/graphics/geometry/geometry.rs:141:9
[INFO] [stdout]     |
[INFO] [stdout] 141 |         out_vert_generator: OutputVertexGenerator<D, V>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_out_vert_generator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SetChunkError` is more private than the item `SmartBuffer::<T, K>::set_chunk_size`
[INFO] [stdout]   --> src/utils/smart_buffer.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn set_chunk_size(&mut self, chunk_size: usize) -> Result<(), SetChunkError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `SmartBuffer::<T, K>::set_chunk_size` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `SetChunkError` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/utils/smart_buffer.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | enum SetChunkError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `command_buffers` is never read
[INFO] [stdout]   --> src/app/graphics_state.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct GraphicsState {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub command_buffers: Vec<CommandBuffer>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_inited` is never read
[INFO] [stdout]   --> src/app/root_state.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct RootState {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub is_inited: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Texture` and `AssetLoadingFailed` are never constructed
[INFO] [stdout]  --> src/error.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Error {
[INFO] [stdout]   |          ----- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 8 |     Texture(TextureError),
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 9 |     AssetLoadingFailed,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Error` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Lost`, `Outdated`, and `Other` are never constructed
[INFO] [stdout]   --> src/error.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum TextureError {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] 14 |     Lost,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 15 |     Outdated,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 16 |     Other,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TextureError` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/game/camera.rs:44:12
[INFO] [stdout]     |
[INFO] [stdout]  30 | impl Camera {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  44 |     pub fn translate_global(&mut self, offset: Vec3) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub fn set_rotation(&mut self, euler_angles: Vec3) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     pub fn set_rotation_quat(&mut self, rotation: Quat) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     pub fn get_rotation(&self) -> Vec3 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn get_rotation_quat(&self) -> Quat {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn set_position(&mut self, position: Vec3) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn get_position(&self) -> Vec3 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     fn get_rotated_up(&self) -> Vec3 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HeightmapEditor` is never constructed
[INFO] [stdout]  --> src/game/heightmap_editor.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct HeightmapEditor {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/game/heightmap_editor.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl HeightmapEditor {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 12 |     pub fn new(width: usize, height: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `vertex_data_updated` is never read
[INFO] [stdout]   --> src/game/sprite.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Sprite {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 29 |     vertex_data_updated: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Sprite` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/game/sprite.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl Sprite {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn new_square(texture_key: PathBuf, texture_atlas_item_index: u16) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn name(&self) -> Option<&String> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn set_name(&mut self, new_value: Option<String>) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn texture_key(&self) -> &Path {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn texture_division_coords(&self) -> UVec2 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn set_texture_division_coords(&mut self, new_value: UVec2) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 99 |     pub fn set_texture_atlas_item_index(&mut self, new_value: u16) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `read` and `write` are never used
[INFO] [stdout]    --> src/graphics/buffer/mut_buffer.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl MutBuffer {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 107 |     pub fn read(&self, dest: Arc<Mutex<Vec<u8>>>) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn write<T>(&mut self, data: Box<T>)
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `blank` is never used
[INFO] [stdout]   --> src/graphics/colour.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl ColourData {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 26 |     fn blank() -> Self {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `vertices` and `indices` are never used
[INFO] [stdout]   --> src/graphics/geometry/geometry.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl<D, V> Geometry<D, V> {
[INFO] [stdout]    | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn vertices(&self) -> impl Iterator<Item = V> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn indices(&self) -> &[u32] {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `is_tilemap_disabled` and `tilemap` are never read
[INFO] [stdout]   --> src/graphics/pipeline/pipeline_pool.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct PipelinePool {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub is_tilemap_disabled: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     tilemap: RenderPipeline,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `tilemap` is never used
[INFO] [stdout]    --> src/graphics/pipeline/pipeline_pool.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl PipelinePool {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn tilemap(&self) -> &RenderPipeline {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `untrack` is never used
[INFO] [stdout]    --> src/graphics/renderer.rs:363:12
[INFO] [stdout]     |
[INFO] [stdout]  74 | / impl<R, V, I> Renderer<R, V, I>
[INFO] [stdout]  75 | | where
[INFO] [stdout]  76 | |     R: Renderable,
[INFO] [stdout]     | |__________________- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 363 |       pub fn untrack(&mut self, render_ids: &[u64]) {
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `size` and `items` are never read
[INFO] [stdout]   --> src/graphics/texture/atlas.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |         struct TextureAtlas {
[INFO] [stdout]    |                ------------ fields in this struct
[INFO] [stdout] 79 |             size: UVec2,
[INFO] [stdout]    |             ^^^^
[INFO] [stdout] 80 |             items: HashMap<PathBuf, AtlasItem>,
[INFO] [stdout]    |             ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TextureAtlas` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `sampler`, `has`, and `remove` are never used
[INFO] [stdout]    --> src/graphics/texture/atlas.rs:253:12
[INFO] [stdout]     |
[INFO] [stdout]  93 | impl TextureAtlas {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 253 |     pub fn sampler(&self) -> &Sampler {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     pub fn has(&self, texture_path: &PathBuf) -> bool {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 437 |     fn remove(&mut self, textures: &[PathBuf]) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constants `SIZE` and `LAYOUT` are never used
[INFO] [stdout]   --> src/graphics/texture/buffer_data.rs:30:15
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl AtlasItemMetaBufferData {
[INFO] [stdout]    | ---------------------------- associated constants in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub const SIZE: u64 = mem::size_of::<Self>() as u64;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 31 |
[INFO] [stdout] 32 |     pub const LAYOUT: VertexBufferLayout<'static> = VertexBufferLayout {
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `align_to_bytes_per_row` is never used
[INFO] [stdout]  --> src/graphics/texture/utils.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn align_to_bytes_per_row(image_width: usize) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `align_usize` is never used
[INFO] [stdout]  --> src/graphics/texture/utils.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn align_usize(image_width: usize, alignment: usize) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new_corners` and `new` are never used
[INFO] [stdout]   --> src/graphics/tilemap/buffer_data.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl TilemapVertexBufferData {
[INFO] [stdout]    | ---------------------------- associated functions in this implementation
[INFO] [stdout] 17 |     pub fn new_corners(tile_position: UVec2, colour: &ColourData) -> [Self; 4] {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     fn new(tile_position: UVec2, corner: u32, colour: &ColourData) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/graphics/tilemap/buffer_data.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl TilemapInstanceBufferData {
[INFO] [stdout]    | ------------------------------ associated function in this implementation
[INFO] [stdout] 75 |     pub fn new(map_position: Vec3, tile_size: Vec2, atlas_item_index: u32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `handle_rotate_around_origin` and `rotate_camera_around_origin` are never used
[INFO] [stdout]   --> src/systems/camera_mover.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl CameraMover {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     fn handle_rotate_around_origin(&self, state: &mut RootState) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     fn rotate_camera_around_origin(&self, yaw_delta: f32, pitch_delta: f32, camera: &mut Camera) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CHARSET` is never used
[INFO] [stdout]  --> src/utils/fontmap.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const CHARSET: &[char] = &[
[INFO] [stdout]   |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FONTMAP_COLS` is never used
[INFO] [stdout]   --> src/utils/fontmap.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const FONTMAP_COLS: u32 = 12;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PX_SIZE` is never used
[INFO] [stdout]   --> src/utils/fontmap.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const PX_SIZE: f32 = 64.0;
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chars_to_fontmap_positions` is never used
[INFO] [stdout]   --> src/utils/fontmap.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn chars_to_fontmap_positions(string: &str) -> Vec<U8Vec2> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_fontmap` is never used
[INFO] [stdout]   --> src/utils/fontmap.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn save_fontmap(fontname: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `apply` is never used
[INFO] [stdout]    --> src/utils/map_2d.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 113 | / impl<T> Map2D<T>
[INFO] [stdout] 114 | | where
[INFO] [stdout] 115 | |     T: Add<Output = T> + Mul<Output = T> + Clone,
[INFO] [stdout]     | |_________________________________________________- method in this implementation
[INFO] [stdout] 116 |   {
[INFO] [stdout] 117 |       fn apply(&mut self, rhs: &Self) {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `translate_global` is never used
[INFO] [stdout]  --> src/utils/movement.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn translate_global(position: Vec3, offset: Vec3) -> Vec3 {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `forward` is never used
[INFO] [stdout]   --> src/utils/movement.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn forward(rotation: Quat) -> Vec3 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `right` is never used
[INFO] [stdout]   --> src/utils/movement.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn right(rotation: Quat) -> Vec3 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `up` is never used
[INFO] [stdout]   --> src/utils/movement.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn up(rotation: Quat) -> Vec3 {
[INFO] [stdout]    |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scene` is never used
[INFO] [stdout]  --> src/utils/paths.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn scene(name: &str) -> PathBuf {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scenes` is never used
[INFO] [stdout]  --> src/utils/paths.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn scenes() -> PathBuf {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `font` is never used
[INFO] [stdout]   --> src/utils/paths.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn font<P>(name: P) -> PathBuf
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SetChunkError` is never used
[INFO] [stdout]   --> src/utils/smart_buffer.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | enum SetChunkError {
[INFO] [stdout]    |      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_chunk_size` and `get_and_dirty` are never used
[INFO] [stdout]   --> src/utils/smart_buffer.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl<T, K> SmartBuffer<T, K> {
[INFO] [stdout]    | ---------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn set_chunk_size(&mut self, chunk_size: usize) -> Result<(), SetChunkError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn get_and_dirty(&mut self, key: &K) -> Option<&T> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `fill` is never used
[INFO] [stdout]    --> src/utils/smart_buffer.rs:165:12
[INFO] [stdout]     |
[INFO] [stdout] 161 | / impl<T, K> SmartBuffer<T, K>
[INFO] [stdout] 162 | | where
[INFO] [stdout] 163 | |     T: Clone,
[INFO] [stdout]     | |_____________- method in this implementation
[INFO] [stdout] 164 |   {
[INFO] [stdout] 165 |       pub fn fill(&mut self, value: &T) {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SetChunkError` is more private than the item `smart_buffer::SmartBuffer::<T, K>::set_chunk_size`
[INFO] [stdout]   --> src/utils/smart_buffer.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn set_chunk_size(&mut self, chunk_size: usize) -> Result<(), SetChunkError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `smart_buffer::SmartBuffer::<T, K>::set_chunk_size` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `SetChunkError` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/utils/smart_buffer.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | enum SetChunkError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `command_buffers` is never read
[INFO] [stdout]   --> src/app/graphics_state.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct GraphicsState {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub command_buffers: Vec<CommandBuffer>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_inited` is never read
[INFO] [stdout]   --> src/app/root_state.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct RootState {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub is_inited: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Texture` and `AssetLoadingFailed` are never constructed
[INFO] [stdout]  --> src/error.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Error {
[INFO] [stdout]   |          ----- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 8 |     Texture(TextureError),
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 9 |     AssetLoadingFailed,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Error` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Lost`, `Outdated`, and `Other` are never constructed
[INFO] [stdout]   --> src/error.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum TextureError {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] 14 |     Lost,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 15 |     Outdated,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 16 |     Other,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TextureError` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/game/camera.rs:44:12
[INFO] [stdout]     |
[INFO] [stdout]  30 | impl Camera {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  44 |     pub fn translate_global(&mut self, offset: Vec3) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub fn set_rotation(&mut self, euler_angles: Vec3) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     pub fn set_rotation_quat(&mut self, rotation: Quat) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     pub fn get_rotation(&self) -> Vec3 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn get_rotation_quat(&self) -> Quat {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn set_position(&mut self, position: Vec3) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn get_position(&self) -> Vec3 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     fn get_rotated_up(&self) -> Vec3 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HeightmapEditor` is never constructed
[INFO] [stdout]  --> src/game/heightmap_editor.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct HeightmapEditor {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/game/heightmap_editor.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl HeightmapEditor {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 12 |     pub fn new(width: usize, height: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `vertex_data_updated` is never read
[INFO] [stdout]   --> src/game/sprite.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Sprite {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 29 |     vertex_data_updated: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Sprite` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/game/sprite.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl Sprite {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn new_square(texture_key: PathBuf, texture_atlas_item_index: u16) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn name(&self) -> Option<&String> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn set_name(&mut self, new_value: Option<String>) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn texture_key(&self) -> &Path {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn texture_division_coords(&self) -> UVec2 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn set_texture_division_coords(&mut self, new_value: UVec2) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 99 |     pub fn set_texture_atlas_item_index(&mut self, new_value: u16) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `read` and `write` are never used
[INFO] [stdout]    --> src/graphics/buffer/mut_buffer.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl MutBuffer {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 107 |     pub fn read(&self, dest: Arc<Mutex<Vec<u8>>>) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn write<T>(&mut self, data: Box<T>)
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `vertices` and `indices` are never used
[INFO] [stdout]   --> src/graphics/geometry/geometry.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl<D, V> Geometry<D, V> {
[INFO] [stdout]    | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn vertices(&self) -> impl Iterator<Item = V> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn indices(&self) -> &[u32] {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `is_tilemap_disabled` and `tilemap` are never read
[INFO] [stdout]   --> src/graphics/pipeline/pipeline_pool.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct PipelinePool {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub is_tilemap_disabled: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     tilemap: RenderPipeline,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `tilemap` is never used
[INFO] [stdout]    --> src/graphics/pipeline/pipeline_pool.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl PipelinePool {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn tilemap(&self) -> &RenderPipeline {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `untrack` is never used
[INFO] [stdout]    --> src/graphics/renderer.rs:363:12
[INFO] [stdout]     |
[INFO] [stdout]  74 | / impl<R, V, I> Renderer<R, V, I>
[INFO] [stdout]  75 | | where
[INFO] [stdout]  76 | |     R: Renderable,
[INFO] [stdout]     | |__________________- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 363 |       pub fn untrack(&mut self, render_ids: &[u64]) {
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `size` and `items` are never read
[INFO] [stdout]   --> src/graphics/texture/atlas.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |         struct TextureAtlas {
[INFO] [stdout]    |                ------------ fields in this struct
[INFO] [stdout] 79 |             size: UVec2,
[INFO] [stdout]    |             ^^^^
[INFO] [stdout] 80 |             items: HashMap<PathBuf, AtlasItem>,
[INFO] [stdout]    |             ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TextureAtlas` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `sampler`, `has`, and `remove` are never used
[INFO] [stdout]    --> src/graphics/texture/atlas.rs:253:12
[INFO] [stdout]     |
[INFO] [stdout]  93 | impl TextureAtlas {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 253 |     pub fn sampler(&self) -> &Sampler {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     pub fn has(&self, texture_path: &PathBuf) -> bool {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 437 |     fn remove(&mut self, textures: &[PathBuf]) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constants `SIZE` and `LAYOUT` are never used
[INFO] [stdout]   --> src/graphics/texture/buffer_data.rs:30:15
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl AtlasItemMetaBufferData {
[INFO] [stdout]    | ---------------------------- associated constants in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub const SIZE: u64 = mem::size_of::<Self>() as u64;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 31 |
[INFO] [stdout] 32 |     pub const LAYOUT: VertexBufferLayout<'static> = VertexBufferLayout {
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `align_to_bytes_per_row` is never used
[INFO] [stdout]  --> src/graphics/texture/utils.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn align_to_bytes_per_row(image_width: usize) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `align_usize` is never used
[INFO] [stdout]  --> src/graphics/texture/utils.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn align_usize(image_width: usize, alignment: usize) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new_corners` and `new` are never used
[INFO] [stdout]   --> src/graphics/tilemap/buffer_data.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl TilemapVertexBufferData {
[INFO] [stdout]    | ---------------------------- associated functions in this implementation
[INFO] [stdout] 17 |     pub fn new_corners(tile_position: UVec2, colour: &ColourData) -> [Self; 4] {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     fn new(tile_position: UVec2, corner: u32, colour: &ColourData) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/graphics/tilemap/buffer_data.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl TilemapInstanceBufferData {
[INFO] [stdout]    | ------------------------------ associated function in this implementation
[INFO] [stdout] 75 |     pub fn new(map_position: Vec3, tile_size: Vec2, atlas_item_index: u32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `handle_rotate_around_origin` and `rotate_camera_around_origin` are never used
[INFO] [stdout]   --> src/systems/camera_mover.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl CameraMover {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     fn handle_rotate_around_origin(&self, state: &mut RootState) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     fn rotate_camera_around_origin(&self, yaw_delta: f32, pitch_delta: f32, camera: &mut Camera) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CHARSET` is never used
[INFO] [stdout]  --> src/utils/fontmap.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const CHARSET: &[char] = &[
[INFO] [stdout]   |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FONTMAP_COLS` is never used
[INFO] [stdout]   --> src/utils/fontmap.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const FONTMAP_COLS: u32 = 12;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PX_SIZE` is never used
[INFO] [stdout]   --> src/utils/fontmap.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const PX_SIZE: f32 = 64.0;
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chars_to_fontmap_positions` is never used
[INFO] [stdout]   --> src/utils/fontmap.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn chars_to_fontmap_positions(string: &str) -> Vec<U8Vec2> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_fontmap` is never used
[INFO] [stdout]   --> src/utils/fontmap.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn save_fontmap(fontname: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `apply` is never used
[INFO] [stdout]    --> src/utils/map_2d.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 113 | / impl<T> Map2D<T>
[INFO] [stdout] 114 | | where
[INFO] [stdout] 115 | |     T: Add<Output = T> + Mul<Output = T> + Clone,
[INFO] [stdout]     | |_________________________________________________- method in this implementation
[INFO] [stdout] 116 |   {
[INFO] [stdout] 117 |       fn apply(&mut self, rhs: &Self) {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `translate_global` is never used
[INFO] [stdout]  --> src/utils/movement.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn translate_global(position: Vec3, offset: Vec3) -> Vec3 {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `forward` is never used
[INFO] [stdout]   --> src/utils/movement.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn forward(rotation: Quat) -> Vec3 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `right` is never used
[INFO] [stdout]   --> src/utils/movement.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn right(rotation: Quat) -> Vec3 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `up` is never used
[INFO] [stdout]   --> src/utils/movement.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn up(rotation: Quat) -> Vec3 {
[INFO] [stdout]    |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scene` is never used
[INFO] [stdout]  --> src/utils/paths.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn scene(name: &str) -> PathBuf {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scenes` is never used
[INFO] [stdout]  --> src/utils/paths.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn scenes() -> PathBuf {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `font` is never used
[INFO] [stdout]   --> src/utils/paths.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn font<P>(name: P) -> PathBuf
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_and_dirty` is never used
[INFO] [stdout]   --> src/utils/smart_buffer.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl<T, K> SmartBuffer<T, K> {
[INFO] [stdout]    | ---------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn get_and_dirty(&mut self, key: &K) -> Option<&T> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `fill` is never used
[INFO] [stdout]    --> src/utils/smart_buffer.rs:165:12
[INFO] [stdout]     |
[INFO] [stdout] 161 | / impl<T, K> SmartBuffer<T, K>
[INFO] [stdout] 162 | | where
[INFO] [stdout] 163 | |     T: Clone,
[INFO] [stdout]     | |_____________- method in this implementation
[INFO] [stdout] 164 |   {
[INFO] [stdout] 165 |       pub fn fill(&mut self, value: &T) {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `toml`
[INFO] [stderr]   --> Cargo.toml:10:1
[INFO] [stderr]    |
[INFO] [stderr] 10 | toml = "0.9.7"
[INFO] [stderr]    | ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `toml`
[INFO] [stderr] warning: `wgpu-test` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 00s
[INFO] running `Command { std: "docker" "inspect" "46af65618aaf82fd4670042cd22e0128d8f5fff4b24abb2ccfa82478f9cfcaf1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "46af65618aaf82fd4670042cd22e0128d8f5fff4b24abb2ccfa82478f9cfcaf1", kill_on_drop: false }`
[INFO] [stdout] 46af65618aaf82fd4670042cd22e0128d8f5fff4b24abb2ccfa82478f9cfcaf1
